package com.utf999.qiangmanger.entity.orm;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.utf999.qiangmanger.entity.UUIDEntity;

/**
 * 店面服务员分组信息。分组信息和店面是对应的。也就是说不通的店面，分组是不一样的。<br>
 * @author yinwenjie
 */
@Entity
@Table(name="B_StoreUserGroup")
public class StoreUserGroupEntity extends UUIDEntity {
	/**
	 * 
	 */
	private static final long serialVersionUID = -8820214423343212576L;
	
	/**
	 * 所属公司（冗余信息），方便查询
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="company" , nullable=false)
	private CompanyEntity company;
	
	/**
	 * 用户分组类型：<br>
	 * 1、系统分组。系统分组是系统默认的，不能进行删除、修改或者作废<br>
	 * 2、用户自定义分组，可以由店面管理员、超级管理员进行管理
	 */
	@Column(name="groupType" , nullable=false)
	private Integer groupType = 1;
	
	/**
	 * 分组名称
	 */
	@Column(name="groupName" , length=225 , nullable=false)
	private String groupName;
	
	/**
	 * 分组状态。由于分组绑定了用户，所以不能做真删除。只能做逻辑删除<br>
	 * 1、正常
	 * 0、不正常
	 */
	@Column(name="status" , nullable=false)
	private Integer status = 1;
	
	/**
	 * 分组说明
	 */
	@Column(name="groupRemark" , length=2000 , nullable=false)
	private String groupRemark = "";
	
	/**
	 * 创建时间
	 */
	@Column(name="createTime" , nullable=false)
	private Date createTime;

	public CompanyEntity getCompany() {
		return company;
	}

	public void setCompany(CompanyEntity company) {
		this.company = company;
	}

	public String getGroupName() {
		return groupName;
	}

	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getGroupRemark() {
		return groupRemark;
	}

	public void setGroupRemark(String groupRemark) {
		this.groupRemark = groupRemark;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	public Integer getGroupType() {
		return groupType;
	}

	public void setGroupType(Integer groupType) {
		this.groupType = groupType;
	}

	/* (non-Javadoc)
	 * @see com.utf999.qiangmanger.entity.UUIDEntity#getUniqueKey()
	 */
	@Override
	public String getUniqueKey() {
		return "uid";
	}
}
